/*
package com.tedu.review.oop;

import org.w3c.dom.ls.LSOutput;

*/
/**抽象类特点<补充>
                    类:成员变量/成员方法/构造方法
                            抽象类:成员变量/成员方法/构造方法
                            成员变量:既可以变量,也可以常量
                            构造方法:有,用于子类访问调用抽象[父类]的成员变量---赋值
                            构造方法:既可以抽象,非抽象
                            抽象方法与非抽象方法出现抽象类问题:
                            A:抽象方法 [重写]强制子类完成父类的抽象方法
                            B:非抽象方法[拓展]子类继承的事情,提高代码复用性
                            成员方法:既可以抽象,非抽象
                            抽象方法与非抽象方法出现在
 *//*

abstract class Foo{
    //成员变量
    public int i= 10;
    public int J=20;//成员变量:变量
    //Java强类型语言:大小写分明
    //public int j= 30;
    //构造方法:无参
    public Foo(){
        this(30);
    }
    public Foo(int i){
        this.i = i;
    }
    //成员方法
public abstract void show();
    //成员方法:非抽象方法
    public void method(){}
    System.out.println()
}
//实现{子}类
class Goo extends Foo{

    public void show() {
        System.out.println("Goo show");
    }
    public void method(){
        System.out.println("Goo method");
    }
}
public class 抽象类补充知识点 {
    public static void main(String[]args){
        //抽象类----继承---多态性---向上造型
        Foo f=new Goo();
       //①实例化---子类的构造器,默认存在无参构造器,
        //在通过super()调用父类无参数构造器
        //②执行抽象类无参构造器,发现有this(参数)调用本类其他有参数构造器
        //③调用this的同时,完成抽象类中i进行赋值 i=30
        System.out.println(f.i);//④输出:i的值 30
        //f.j=40; 不可修改
        System.out.println(f.J);

        //----------
        f.show(); //输出:Goo show 重写
        f.method();//输出: Goo method 拓展[子类方法重写]
    }

}
*/
/*拓展:abstract关键共存问题*//*

abstract class Aoo{
    //private abstract void show1();冲突
    //public final abstract void show2();
    public

}
*/
